home *** CD-ROM | disk | FTP | other *** search
- package java.util;
-
- public final class BitSet implements Cloneable {
- static final int BITS = 6;
- static final int MASK = 63;
- long[] bits;
-
- public BitSet() {
- this(64);
- }
-
- public BitSet(int var1) {
- this.bits = new long[var1 + 63 >> 6];
- }
-
- private void grow(int var1) {
- long[] var2 = new long[Math.max(this.bits.length << 1, var1 + 63 >> 6)];
- System.arraycopy(this.bits, 0, var2, 0, this.bits.length);
- this.bits = var2;
- }
-
- public void set(int var1) {
- int var2 = var1 >> 6;
- if (var2 >= this.bits.length) {
- this.grow(var1);
- }
-
- long[] var10000 = this.bits;
- var10000[var2] |= 1L << (var1 & 63);
- }
-
- public void clear(int var1) {
- int var2 = var1 >> 6;
- if (var2 >= this.bits.length) {
- this.grow(var1);
- }
-
- long[] var10000 = this.bits;
- var10000[var2] &= ~(1L << (var1 & 63));
- }
-
- public boolean get(int var1) {
- int var2 = var1 >> 6;
- if (var2 < this.bits.length) {
- return (this.bits[var2] & 1L << (var1 & 63)) != 0L;
- } else {
- return false;
- }
- }
-
- public void and(BitSet var1) {
- int var2 = Math.min(this.bits.length, var1.bits.length);
-
- long[] var4;
- for(int var3 = var2; var3-- > 0; var4[var3] &= var1.bits[var3]) {
- var4 = this.bits;
- }
-
- while(var2 < this.bits.length) {
- this.bits[var2] = 0L;
- ++var2;
- }
-
- }
-
- // $FF: renamed from: or (java.util.BitSet) void
- public void method_0(BitSet var1) {
- long[] var3;
- for(int var2 = Math.min(this.bits.length, var1.bits.length); var2-- > 0; var3[var2] |= var1.bits[var2]) {
- var3 = this.bits;
- }
-
- }
-
- public void xor(BitSet var1) {
- long[] var3;
- for(int var2 = Math.min(this.bits.length, var1.bits.length); var2-- > 0; var3[var2] ^= var1.bits[var2]) {
- var3 = this.bits;
- }
-
- }
-
- public int hashCode() {
- long var1 = 1234L;
- int var3 = this.bits.length;
-
- while(true) {
- --var3;
- if (var3 < 0) {
- return (int)(var1 >> 32 ^ var1);
- }
-
- var1 ^= this.bits[var3] * (long)var3;
- }
- }
-
- public int size() {
- return this.bits.length << 6;
- }
-
- public boolean equals(Object var1) {
- if (var1 != null && var1 instanceof BitSet) {
- BitSet var2 = (BitSet)var1;
- int var3 = Math.min(this.bits.length, var2.bits.length);
- int var4 = var3;
-
- while(var4-- > 0) {
- if (this.bits[var4] != var2.bits[var4]) {
- return false;
- }
- }
-
- if (this.bits.length > var3) {
- int var5 = this.bits.length;
-
- while(var5-- > var3) {
- if (this.bits[var5] != 0L) {
- return false;
- }
- }
- } else if (var2.bits.length > var3) {
- int var6 = var2.bits.length;
-
- while(var6-- > var3) {
- if (var2.bits[var6] != 0L) {
- return false;
- }
- }
- }
-
- return true;
- } else {
- return false;
- }
- }
-
- public Object clone() {
- try {
- BitSet var1 = (BitSet)super.clone();
- var1.bits = new long[this.bits.length];
- System.arraycopy(this.bits, 0, var1.bits, 0, this.bits.length);
- return var1;
- } catch (CloneNotSupportedException var2) {
- throw new InternalError();
- }
- }
-
- public String toString() {
- String var1 = "";
-
- for(int var2 = 0; var2 < this.bits.length << 6; ++var2) {
- if (this.get(var2)) {
- if (var1.length() > 0) {
- var1 = var1 + ", ";
- }
-
- var1 = var1 + var2;
- }
- }
-
- return "{" + var1 + "}";
- }
- }
-